Data storage devices enable users to store and retrieve data. Examples of data storage devices include volatile memory devices and non-volatile memory devices. A non-volatile memory may retain data after a power-down event, and a volatile memory may lose data after a power-down event.
In some cases, data may be subject to one or more errors. For example, electrical noise may cause a logic “0” value to be read as a logic “1” value (or vice versa). Electrical noise may affect data within an electronic device as well as data that is sent via a network, such as a wireless network or a wired network. For example, a mobile phone may receive data that is affected by a wireless channel used to receive the data.
To enable correction of data errors, an encoder may encode data using an encoding scheme, such as by adding redundancy information to the data prior to storing the data to a memory or prior to transmitting the data. The encoding scheme may specify a codebook that associates data with codewords of the encoding scheme. A decoder may decode the data by using the redundancy information to locate and correct one or more data errors (up to a particular error correction capability of the encoding scheme).
Decoding data consumes power and clock cycles of a device. For example, a decoder may use an iterative decoding process to locate data errors, which utilizes power and one or more clock cycles for each iteration.